Download OpenAPI specification:Download
This document provides information on how to access the withthegrid application programmatically.
Programmatic access to the application requires a machine account. Almost everything a user can do in the user interface of the application, can also be done with a machine account. To obtain one, contact us at info@withthegrid.com.
Our programmatic interface is a REST JSON API that is accessible through HTTPS. Next to the raw HTTP queries (with examples in cURL), we provide a Javascript(Typescript) SDK. Select in the top bar whether you want to see the documentation for cURL or the Javascript SDK.
To add the SDK to your javascript package, type npm i @withthegrid/platform-sdk into your console.
There are two types of environments in our application: monitoring environments and connectivity environments.
In monitoring environments, you store geospatial and other static information on infrastructural assets. You can create condition reports on the condition of these assets, resulting in measurement time series. Reports on asset can be manually created or by connecting an (IoT) device. The condition of the assets is monitored based on the condition reports and issues are automatically created when anomalies are detected.
In connectivity environments, developers of devices and external systems can:
To interact with the API you can make HTTP requests to the routes in the left-hand menu. Most of these need authentication. Obtain a JSON webtoken from the Login route. The following rights exist for the monitoring environments:
| Right | Description |
|---|---|
| READ | View (except audit trail) |
| STATIC | Modify static data |
| ISSUES | Manage issues |
| AUDIT_TRAIL | View audit trail |
| USERS | Manage users |
| EXPORT | Export data |
| SENSORS | Manage devices |
| REPORTS | Manage condition reports |
For the connectivity environments there is only one right: ENVIRONMENT_ADMIN.
All requests need a header specifying the version of the api that is being used by the client for example:
Api-Version: 4
As the route documentation will show, the request body and its response are almost always JSON encoded (with corresponding Content-Type: application/json header).
Some objects in requests or responses are used multiple times. Those are extracted as models and listed separately under the schemas section.
There is a SDK available that can be used to make calling the api more easy. The following is an example for creating a location (pinGroup).
import PlatformSdk, { errors } from '@withthegrid/platform-sdk';
const example = async () => {
const platformSdk = new PlatformSdk();
// Here you use the assertion that is provided to you when the machine account is created
await platformSdk.machineLogin('your assertion');
/*
A controller (addPinGroup in this example) takes a single parameter, which
is an object with three possible keys: params, query and body. It depends on
the route what the signature should be.
A controller returns an object with the following signature:
{
request: {
query: validatedQuery,
body: validatedBody,
params: validatedParams,
} as EffectiveRequestImplementation,
response: responsePromise as Promise<ResponseImplementation>,
}
The request is based on the provided parameter, with default values added to
it. Response is an object with a signature that depends on the route. An
application of the cancelToken is shown below.
*/
const result = await platformSdk.routes.graph.addPinGroup({
body: {
symbolKey: 'cp-pole',
geometry: {
type: 'Point',
coordinates: [5.078397, 52.100985],
},
fields: {},
},
});
/*
With a 1 in 10 chance, cancel the request. this does not make sense in
practice, but demonstrates the use of cancel tokens A more useful
application is an autocomplete text field, where suggestions are updated as
the user is typing. New user input would trigger a new request. The old one
should then be canceled as its response will be ignored.
As the request might have already reached the server, you do not know
whether the request has been processed. Using this on requests that change
the state of an object on the server (PUT, POST and DELETE requests) does
not make sense.
*/
if (Math.random() > 0.9) {
setImmediate(() => {
result.cancelToken.cancel();
});
}
const response = await result.response;
console.log(`Added a new pinGroup with hashId ${response.hashId}`);
process.exit(0);
}
example().catch((e) => {
if (e instanceof errors.CommsCanceled) {
// will be triggered when you call result.cancelToken.cancel();
console.log('You have canceled the request');
} else if (e instanceof errors.Base) {
console.log(e.formattedMessage);
console.error(`Stack trace: ${e.stack}`);
} else if (e instanceof Error) {
console.error(`Error: ${e.message}`);
console.error(`Stack trace: ${e.stack}`);
} else {
console.error(`Not-an-object error: ${e}`);
}
process.exit(1);
});
Almost all objects are identified by their hashId. This is an alphanumeric string uniquely identifying that object within its own object type. So the same hashId can occur for a Command and a PinGroup, but they identify different objects.
In some object types, users can store custom data. The fields that can be used to store data in these objects are defined in a field configuration. The UI renders this field configuration as a form.
The following objects support these form fields:
| Object with field | Configured in |
|---|---|
| edges | monitoring environment under fieldConfigurations.edges for fields |
| grids | monitoring environment under fieldConfigurations.grids for fields |
| pin groups | monitoring environment under fieldConfigurations.pinGroups for fields and device type under pinGroupFieldConfigurations for deviceFields. |
| nodes | monitoring environment under fieldConfigurations.nodes for fields |
| pin | monitoring environment under fieldConfigurations.pins for fields and device type under channels[].pinFieldConfigurations for deviceFields. |
| reports | manual report type and device report type for fields |
| commands | command type for fields |
| devices | device type for fields |
The name of an edge, grid, pin group, node and pin objects is defined as the value of the first field in the field configuration. At least one key is therefore required in these fields properties.
| User defined code | Location of the code editor in the ui where commented templates can be found |
|---|---|
| form field | Everywhere where form fields can be defined. For example in the "Monitoring environment" settings, under "Form fields". Click on a property and press "Show advanced options". The 5 UDFs can be viewed using the code editor at the bottom. |
| device supplier certificate identifier | In the "Connectivity environment" under "Device authentication", "Client certificate access". Click on a certificate and press "Edit the identifier" to reach the code editor. |
| device supplier webhook identifier | In the "Connectivity environment" under "Device authentication", "Webhook access". Click on a webhook and press "Edit the identifier" to reach the code editor. |
| device type eventHandler | In the "Connectivity environment" under "Device types". Click on a device type and press "Edit the event handler" to reach the code editor. |
| device condition report parser | In the "Connectivity environment" under "Report types". Click on a report type and press "Edit the parser" to reach the code editor. |
Create an analytics dashboard
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| title required | string |
Array of objects[ items ] Default: [] | |
required | Array of objects[ items ] |
{- "title": "My dashboard",
- "layout": [ ],
- "cards": [
- {
- "title": "My widget",
- "subtitle": "My widget description",
- "query": {
- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": "or",
- "restrictions": "{}"
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}, - "visualisation": {
- "type": "line",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}
}
]
}{- "hashId": "7usgt"
}Search through analytics dashboards
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/analytics/panel \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "panel": {
- "hashId": "j1iha9",
- "title": "My dashboard",
- "layout": [ ],
- "cards": [
- {
- "title": "My widget",
- "subtitle": "My widget description",
- "query": {
- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": null,
- "restrictions": { }
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}, - "visualisation": {
- "type": "line",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}
}
]
}
}
]
}Get the results for an analytics dashboard
Rights
object (analyticsQuery) An object describing an analytics query. |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/analytics/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- [
- "dao97"
]
]
}Get a specific analytics dashboard identified by its hashId
Rights
| hashId required | string Example: 7usgt |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/analytics/panel/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "panel": {
- "hashId": "j1iha9",
- "title": "My dashboard",
- "layout": [ ],
- "cards": [
- {
- "title": "My widget",
- "subtitle": "My widget description",
- "query": {
- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": "or",
- "restrictions": "{}"
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}, - "visualisation": {
- "type": "line",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}
}
]
}
}Delete an analytics dashboard.
Rights
| hashId required | string Example: 7usgt |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/analytics/panel/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Update an analytics dashboard
Rights
| hashId required | string Example: 7usgt |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| title | string |
Array of objects[ items ] | |
Array of objects[ items ] |
{- "title": "My dashboard",
- "layout": [
- {
- "x": 5,
- "y": 0,
- "width": 2,
- "height": 4
}
], - "cards": [
- {
- "title": "My widget",
- "subtitle": "My widget description",
- "query": {
- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": "or",
- "restrictions": "{}"
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}, - "visualisation": {
- "type": "line",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}
}
]
}Acquire a JSON web token that can be used to perform authenticated requests. The jwt expiration is typically 30 days.
| Api-Version required | integer Example: 5 |
| assertion required | string Is provided when you create a machine account (also called an API account) |
{- "assertion": "12as:7d6a4123"
}{- "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpcCI6InJvYkB3aXRodGhlZ3JpZC5jb20iLCJpA9qiOjE1Nzc3MTA5NjksImV4cCI6MTU4MDMwMjk2OSwiaXNzIjoid2l0aHRoZWdyaWQifQ.7PbwwsWU7x63Pd-J_KZQL22r185GfiufixyXQGOyQs8",
- "user": {
- "hashId": "b45zo0",
- "email": "info@acme.com",
- "name": "John Doe",
- "timezone": "Europe/Amsterdam",
- "locale": "en",
- "phone": "string",
- "company": "string",
- "rights": [
- "STATIC",
- "USERS"
]
}, - "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "environmentRights": [
- "STATIC",
- "USERS"
], - "userEnvironmentSettings": {
- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}
}Get the measurement data for one or more time series for a specified period
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/chart/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "series": [
- {
- "pinHashId": "e13d57",
- "quantityHashId": "sajia1",
- "measurements": [
- {
- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}
]
}
]
}Get the chart panel for a pinGroup, grid, edge or pin
Rights
object or object or object or object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/chart/panel \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "lastMode": "automatic",
- "charts": {
- "automatic": [
- {
- "title": null,
- "series": [
- {
- "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}, - "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "color": "#ff0000",
- "pinThreshold": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}
}
]
}
], - "manual": [
- {
- "title": null,
- "series": [
- {
- "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}, - "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "color": "#ff0000",
- "pinThreshold": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}
}
]
}
]
}
}Update a chart panel
Rights
object or object or object or object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| lastMode | string Enum: "manual" "automatic" |
Array of objects[ items ] |
{- "lastMode": "manual",
- "manualCharts": [
- {
- "title": null,
- "series": [
- {
- "quantityHashId": "sajia1",
- "pinHashId": "e13d57",
- "color": "#ff0000"
}
]
}
]
}Add a command that should be sent to a specific device
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: SENSORS
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| objectType required | string Enum: "device" "pinGroup" |
| objectHashIds required | Array of strings non-empty |
| commandTypeHashId required | string |
| fields required | object How form fields should be sent to the server when creating them. |
| startAt | string or null <date-time> Timestamp the device should execute the command. The system tries to share the command with the device before that time. If null, the device should execute it at time of receival + command.delay. It depends on the commandType whether startAt can be null |
| delay | number <float> In seconds. Only relevant when startAt is null. The command should then be executed by the device at time of receival + delay |
| endAt | string or null <date-time> Timestamp the device should stop execution of the command. |
| channelIndices | Array of numbers <float> [ items <float > ] Default: [] The device channels for which this command is relevant. See commandType.channelSelect for allowed values. |
| email required | Array of strings <email> An email will be sent to all provided email addresses when the command is executed by the device |
{- "objectType": "device",
- "objectHashIds": [
- "j1iha9"
], - "commandTypeHashId": "x18a92",
- "fields": {
- "interval": 86400
}, - "startAt": "2019-12-31T15:23Z",
- "delay": 0,
- "endAt": null,
- "channelIndices": [ ],
- "email": [ ]
}Search through commands
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/command/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "command": {
- "hashId": "ga9741s",
- "deviceHashId": "j1iha9",
- "commandTypeHashId": "x18a92",
- "fields": { },
- "pinGroupHashId": "dao97",
- "userHashId": "b45zo0",
- "startAt": "2019-12-31T15:23Z",
- "delay": 0,
- "endAt": null,
- "channelIndices": [
- 0,
- 2
], - "email": [
- "info@acme.com"
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "sentAt": "2019-12-31T15:23Z"
}, - "commandType": {
- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}, - "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}
]
}Delete a command. Will raise an error if the command cannot be canceled because the device has already executed it or because the device will not be reached in time to let it know that it should ignore the command.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: SENSORS
| hashId required | string Example: ga9741s |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/command/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific command identified by its hashId
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
| hashId required | string Example: ga9741s |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/command/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "command": {
- "hashId": "ga9741s",
- "deviceHashId": "j1iha9",
- "commandTypeHashId": "x18a92",
- "fields": { },
- "pinGroupHashId": "dao97",
- "userHashId": "b45zo0",
- "startAt": "2019-12-31T15:23Z",
- "delay": 0,
- "endAt": null,
- "channelIndices": [
- 0,
- 2
], - "email": [
- "info@acme.com"
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "sentAt": "2019-12-31T15:23Z"
}, - "commandType": {
- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}
}Create a command type that can be sent to devices
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
| start | string Default: "optional" Enum: "required" "optional" "disabled" 'required': user must provide command.startAt. 'optional': user can provide command.startAt or a delay for the command to start after it is sent to the device. 'disabled': user cannot provide command.startAt nor a delay. |
| end | string Default: "disabled" Enum: "required" "optional" "disabled" 'required': user must provide command.endAt. 'optional': user can provide command.endAt. 'disabled': user cannot provide command.endAt. |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] See the chapter on open fields on how to use this |
| channelSelect | string Default: "off" Enum: "single" "multiple" "off" When creating a command of this type, the user can then optionally choose one (in case of 'single') or more channelIndices (in case of 'multiple') for which this command is relevant. If 'off' is chosen, the user cannot specify channelIndices |
| environmentAccess | string Default: "full" Enum: "full" "read" "none" 'full': end-users can view, create and delete commands of this type. 'read': end-users can view but not create and delete commands of this type. 'none': end-users cannot view, create or delete commands of this type. |
{- "name": "Measurement cycle",
- "start": "required",
- "end": "required",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "single",
- "environmentAccess": "full"
}{- "hashId": "x18a92"
}Search through command types
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/command-type/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "commandType": {
- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}
}
]
}Delete a command type.
Rights
| hashId required | string Example: x18a92 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/command-type/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific command type identified by its hashId
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
| hashId required | string Example: x18a92 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/command-type/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "commandType": {
- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}
}Update a command type.
Rights
| hashId required | string Example: x18a92 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
| start | string Enum: "required" "optional" "disabled" 'required': user must provide command.startAt. 'optional': user can provide command.startAt or a delay for the command to start after it is sent to the device. 'disabled': user cannot provide command.startAt nor a delay. |
| end | string Enum: "required" "optional" "disabled" 'required': user must provide command.endAt. 'optional': user can provide command.endAt. 'disabled': user cannot provide command.endAt. |
Array of objects (updatableFieldConfigurations) [ items ] See the chapter on open fields on how to use this | |
| channelSelect | string Enum: "single" "multiple" "off" When creating a command of this type, the user can then optionally choose one (in case of 'single') or more channelIndices (in case of 'multiple') for which this command is relevant. If 'off' is chosen, the user cannot specify channelIndices |
| environmentAccess | string Default: "full" Enum: "full" "read" "none" 'full': end-users can view, create and delete commands of this type. 'read': end-users can view but not create and delete commands of this type. 'none': end-users cannot view, create or delete commands of this type. |
{- "name": "Measurement cycle",
- "start": "required",
- "end": "required",
- "fieldConfigurations": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "channelSelect": "single",
- "environmentAccess": "full"
}Add one or more devices to this monitoring environment by providing their claim tokens. This invalidates the claim token
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| claimTokens required | Array of strings non-empty |
{- "claimTokens": [
- "aklasjkl13a23"
]
}{- "devices": [
- {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}
]
}Delete one or more devices. If a device is claimed by a monitoring environment, it cannot be deleted.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| hashIds required | Array of strings non-empty |
{- "hashIds": [
- "aklasjkl13a23"
]
}Search through devices
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/device/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": null,
- "color": null
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "environmentName": "My monitoring environment",
- "environmentHashId": "f1a4w1",
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}
]
}Get claim tokens for one or more devices. These claim tokens can be used in a monitoring environment to claim these devices. This request invalidates older claim tokens for these devices. Suppliers cannot acquire a claim token for devices that have already been claimed by a monitoring environment. Users in a monitoring environment cannot acquire a claim token for devices that are linked to a pin group.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: SENSORS
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| deviceHashIds required | Array of strings |
{- "deviceHashIds": [
- "j1iha9"
]
}{- "claimTokens": [
- {
- "deviceHashId": "j1iha9",
- "claimToken": "aklasjkl13a23"
}
]
}Get a specific device identified by its hashId
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
| hashId required | string Example: j1iha9 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/device/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "environmentName": "My monitoring environment",
- "environmentHashId": "f1a4w1",
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}Update a device.
Rights
| hashId required | string Example: j1iha9 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
required | object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. |
{- "fields": { }
}{- "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}
}Connect a device to a pin group (and its channels to the pin group's pins. Future condition reports from this device will also be available on this pin group. A claim token for this device will be invalidated
Rights
| hashId required | string Example: j1iha9 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| pinGroupHashId required | string |
required | Array of objects[ items ] |
{- "pinGroupHashId": "dao97",
- "channelMapping": [
- {
- "channel": 0,
- "pinHashId": "e13d57",
- "deviceFields": { }
}
]
}{- "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z"
}Remove one or more devices from this monitoring environment. Only use this if you want to return the device to the supplier
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| hashIds required | Array of strings non-empty |
{- "hashIds": [
- "aklasjkl13a23"
]
}Disconnect a device from a pin group. Future condition reports from this device will no longer be registered on the pin group it was connected to.
Rights
| deviceHashId required | string Example: j1iha9 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X POST https://api.withthegrid.com/device/{deviceHashId}/unlink \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}' \
Add a new device type.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string This name is also visible in monitoring environments. To get a uniform user experience, please provide the name in English |
| eventHandler required | string <= 1000000 characters A javascript function that handles events. See the chapter "User defined code |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] See the chapter on open fields on how to use this |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] Defines deviceFields on the location (pinGroup) the device is connected to. Can be used in report type functions. See the chapter on open fields on how to use this |
required | Array of objects[ items ] All measurements are registered on a channel. When a device is installed at a location (pinGroup), its channels are connected to the ports (pins) of the location(pinGroup). |
Array of objects[ items ] | |
| commandTypeHashIds required | Array of strings The hashIds of the command types a user can schedule for this device |
{- "name": "Cathodic protection device",
- "eventHandler": "[omitted]",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}{- "hashId": "wasd2",
- "subscriptionHashId": "string"
}Search through device types within a supplier, or within devices registered by client
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/device-type/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": null,
- "color": null
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}
}
]
}Delete a device type. All devices of this device type do no longer get access to the application!
Rights
| hashId required | string Example: wasd2 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/device-type/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific device type identified by its hashId
Rights
| hashId required | string Example: wasd2 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/device-type/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "eventHandler": "[omitted]",
- "commandTypes": [
- {
- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}
], - "subscriptionHashId": "string",
- "chartQuantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
]
}Update the settings of a device type.
Rights
| hashId required | string Example: wasd2 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string This name is also visible in monitoring environments. To get a uniform user experience, please provide the name in English |
| eventHandler | string <= 1000000 characters A javascript function that handles events. See the chapter "User defined code" |
Array of objects (updatableFieldConfigurations) [ items ] See the chapter on open fields on how to use this | |
Array of objects (updatableFieldConfigurations) [ items ] See the chapter on open fields on how to use this | |
Array of objects[ items ] All measurements are registered on a channel. When a device is installed at a location (pinGroup), its channels are connected to the ports (pins) of the location (pinGroup). Be careful when altering channels that it does still make sense for already installed devices and historic condition reports. It is therefore not allowed to delete channels (therefore it is required that the array is not shorter than the existing channel array). | |
Array of objects[ items ] | |
| commandTypeHashIds | Array of strings The hashIds of the command types a user can schedule for this device |
{- "name": "Cathodic protection device",
- "eventHandler": "string",
- "fieldConfigurations": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "pinGroupFieldConfigurations": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "string"
]
}Create a monitoring environment
| Api-Version required | integer Example: 5 |
| name required | string |
{- "name": "My monitoring environment"
}{- "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "environmentRights": [
- "STATIC",
- "USERS"
], - "userEnvironmentSettings": {
- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}
}Delete a monitoring environment. No user can access it afterwards.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/environment/ \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Search through monitoring environments. Not useful for machine accounts, as they only have access to a single monitoring environment
object |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/environment/ \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "environmentRights": [
- "STATIC",
- "USERS"
], - "userEnvironmentSettings": {
- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}
}
]
}Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
Array of objects (mapLayer) non-empty [ items ] | |
object See the chapter on open fields on how to use this. A minimum of 1 element should be present in each field configuration array | |
| locale | string Enum: "en" "nl" Locale code |
| defaultGraphRange | string |
| measurementsExpirationDays | integer [ 1 .. 9999 ] |
{- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "fieldConfigurations": {
- "pinGroups": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "grids": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "edges": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "nodes": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "pins": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365
}{- "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}
}Get a specific monitoring environment identified by its hashId
| hashId required | string Example: f1a4w1 |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/environment/{hashId} \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "environmentRights": [
- "STATIC",
- "USERS"
], - "userEnvironmentSettings": {
- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}
}Create an edge
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| nodeHashIds required | Array of strings or null [ 1 .. 2 ] items [ items ] The first node is assumed to correspond with the first coordinate in the geometry of the edge, and the second one to the last. If null, a node is created. If only one node is supplied, it is assumed to be both start and end point. |
required | object |
| fields required | object How form fields should be sent to the server when creating them. |
| properties | any deprecated |
| mapLayer | string |
| photo | string Should be a dataurl |
{- "geometry": {
- "type": "MultiLineString",
- "coordinates": [
- [
- [
- -180,
- -180
], - [
- -180,
- -180
]
]
]
}, - "fields": {
- "id": "My line"
}, - "properties": null,
- "mapLayer": "string",
- "photo": "string"
}{- "hashId": "ka08d",
- "edge": {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}Search through edges
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/edge \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "edge": {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}
]
}Create a pin group grid
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| fields required | object How form fields should be sent to the server when creating them. |
| photo | string Should be a dataurl |
| pinGroupHashIds | Array of strings Default: [] Determines the set (and the order) of the pin groups in the grid |
{- "fields": {
- "id": "My grid"
}, - "photo": "string",
- "pinGroupHashIds": [ ]
}{- "hashId": "naud51",
- "grid": {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}
}Search through grids
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/grid \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "grid": {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}, - "notificationLevel": 0
}
]
}Create a pin group
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| symbolKey required | string |
required | object or null |
| fields required | object How form fields should be sent to the server when creating them. |
| mapLayer | string If not provided, the first available one is chosen |
| photo | string Should be a dataurl |
| gridHashIds | Array of strings PinGroups will be added at the end of the list in a grid |
| gridName | string Ensures the pinGroup is part of a grid with the provided name. If multiple grids exist with the same name, one is chosen at random |
{- "symbolKey": "cp-pole",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "fields": {
- "id": "My location"
}, - "mapLayer": "string",
- "photo": "string",
- "gridHashIds": [
- "string"
], - "gridName": "string"
}{- "hashId": "dao97",
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}Search through pin groups
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin-group \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}
}
]
}Create a node
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
required | object |
| fields required | object How form fields should be sent to the server when creating them. |
{- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "fields": {
- "id": "My node"
}
}{- "hashId": "qp111a",
- "node": {
- "hashId": "qp111a",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My node",
- "fields": {
- "id": "My node"
}, - "gridHashId": "naud52",
- "deletedAt": null
}
}Search through nodes
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/node \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "node": {
- "hashId": "qp111a",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My node",
- "fields": {
- "id": "My node"
}, - "gridHashId": "naud52",
- "deletedAt": null
}
}
]
}Create a pin within a pin group
Rights
| pinGroupHashId required | string Example: dao97 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| fields required | object How form fields should be sent to the server when creating them. |
| typeKey | string or null |
| edgeHashId | string or null |
{- "fields": {
- "id": "My port"
}, - "typeKey": "string",
- "edgeHashId": "ka08d"
}{- "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
}Delete an edge.
Rights
| hashId required | string Example: ka08d |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/graph/edge/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific edge identified by its hashId
Rights
| hashId required | string Example: ka08d |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/edge/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "edge": {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "pins": [
- {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
], - "pinGroups": [
- {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "measurementCycles": [ ],
- "nextReportBefore": [
- "2019-12-31T15:25Z"
], - "thresholds": [
- {
- "value": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}, - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
],
}Updates a specific edge
Rights
| hashId required | string Example: ka08d |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. | |
| mapLayer | string |
| nodeHashIds | Array of strings 2 items The first node is assumed to correspond with the first coordinate in the geometry of the edge, and the second one to the last. If not supplied, it is not updated, unless formerly the edge had a MultiLineString geometry, then 2 new nodes are created. |
object | |
| photo | string or null Should be a dataurl. Null clears the photo |
{- "fields": { },
- "mapLayer": "string",
- "geometry": {
- "type": "MultiLineString",
- "coordinates": [
- [
- [
- -180,
- -180
], - [
- -180,
- -180
]
]
]
}, - "photo": "string"
}{- "edge": {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
}Delete a grid.
Rights
| hashId required | string Example: naud51 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/graph/grid/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific grid identified by its hashId
Rights
| hashId required | string Example: naud51 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/grid/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "grid": {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}, - "pinGroups": [
- {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "lastReports": [
- {
- "pinGroupHashId": "dao97",
- "generatedAt": "2019-12-31T15:23Z"
}
], - "notificationLevel": 0,
}Updates a specific grid
Rights
| hashId required | string Example: naud51 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. | |
| photo | string or null Should be a dataurl. Null clears the photo |
| pinGroupHashIds | Array of strings Determines the set (and the order) of the pin groups in the grid |
{- "fields": { },
- "photo": "string",
- "pinGroupHashIds": [
- "string"
]
}{- "grid": {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}, - "pinGroups": [
- {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "lastReports": [
- {
- "pinGroupHashId": "dao97",
- "generatedAt": "2019-12-31T15:23Z"
}
]
}Delete a pin group.
Rights
| hashId required | string Example: dao97 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/graph/pin-group/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific pin group identified by its hashId
Rights
| hashId required | string Example: dao97 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin-group/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "pins": [
- {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
], - "edges": [
- {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "channelMapping": [
- {
- "channel": 0,
- "pinHashId": "string"
}
], - "measurementCycle": null,
- "thresholds": [
- {
- "value": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}, - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
], - "nextReportBefore": "2019-12-31T15:25Z",
- "grids": [
- {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}
]
}Updates a specific pin group
Rights
| hashId required | string Example: dao97 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| symbolKey | string |
object or null | |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. | |
| mapLayer | string |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. | |
| photo | string or null Should be a dataurl. Null clears the photo |
| gridHashIds | Array of strings PinGroups will be added at the end of the list in a grid |
| gridName | string Ensures the pinGroup is part of a grid with the provided name. If multiple grids exist with the same name, one is chosen at random |
{- "symbolKey": "cp-rect",
- "geometry": {
- "type": "Point",
- "coordinates": [
- -180,
- -180
]
}, - "fields": { },
- "mapLayer": "string",
- "deviceFields": { },
- "photo": "string",
- "gridHashIds": [
- "string"
], - "gridName": "string"
}{- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "grids": [
- {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}
]
}Delete a node.
Rights
| hashId required | string Example: qp111a |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/graph/node/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific node identified by its hashId
Rights
| hashId required | string Example: qp111a |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/node/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "node": {
- "hashId": "qp111a",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My node",
- "fields": {
- "id": "My node"
}, - "gridHashId": "naud52",
- "deletedAt": null
}, - "edges": [
- {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
]
}Updates a specific node
Rights
| hashId required | string Example: qp111a |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
object | |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. |
{- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "fields": { }
}{- "node": {
- "hashId": "qp111a",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My node",
- "fields": {
- "id": "My node"
}, - "gridHashId": "naud52",
- "deletedAt": null
}
}Delete a pin.
Rights
| hashId required | string Example: e13d57 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/graph/pin/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific pin identified by its hashId
Rights
| hashId required | string Example: e13d57 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}, - "edges": [
- {
- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "thresholds": [
- {
- "value": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}, - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
]
}Updates a specific pin
Rights
| hashId required | string Example: e13d57 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. | |
| edgeHashId | string or null |
{- "fields": { },
- "edgeHashId": "ka08d"
}{- "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
}Search through pinGroups, edges and pinGroup-grids
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "objectType": "pinGroup",
- "hashId": "dao97",
- "name": "My location"
}
]
}Updates the geoemtries of one or more nodes, pin groups and or edges
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| type required | string Value: "pinGroup" |
| hashId required | string |
required | object or null |
[- {
- "type": "pinGroup",
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}
}
]Search through pins
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}, - "pinGroup": {
- "name": "My location"
}
}
]
}Returns up to 310 measurements for a specific edge. If more measurements are available, the most representative ones are selected. This route can be used for plotting. If all measurements should be obtained, the report controllers are better suited.
Rights
| hashId required | string Example: ka08d |
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/edge/{hashId}/measurements \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "moreMeasurementsAvailable": false,
- "lowerbound": "2019-12-01T00:00Z",
- "upperbound": "2019-12-01T00:00Z",
- "observations": [
- {
- "measurement": {
- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}, - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
]
}Get the performance of a device linked to a specific pin group identified by its hashId
Rights
| hashId required | string Example: dao97 |
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin-group/{hashId}/performance \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
[- {
- "startAt": "2019-12-01T00:00Z",
- "endAt": "2020-01-01T00:00Z",
- "reports": {
- "expected": 9,
- "received": 8
}, - "measurements": {
- "good": 10,
- "serious": 10,
- "critical": 10
}
}
]Get a specific pin quantities by its hashId
Rights
| pinHashId required | string Example: e13d57 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin-quantities/{pinHashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "rows": [
- {
- "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "pinThreshold": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}
}
]
}Returns up to 310 measurements. If more measurements are available, the most representative ones are selected. This route can be used for plotting. If all measurements should be obtained, the report controllers are better suited.
Rights
| hashId required | string Example: e13d57 |
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/pin/{hashId}/measurements \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "moreMeasurementsAvailable": false,
- "lowerbound": "2019-12-01T00:00Z",
- "upperbound": "2019-12-01T00:00Z",
- "observations": [
- {
- "measurement": {
- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}, - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
]
}Get a mapbox vector tile of the edges, nodes and pin groups within the provided bounding box.
Rights
| x required | integer Example: 4207 |
| y required | integer Example: 2693 |
| z required | integer Example: 13 |
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/graph/tiles/{z}/{x}/{y} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
nullSubscribe to or unsubscribe from new issues created on pin groups in this specific grid
Rights
| hashId required | string Example: naud51 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| level required | number or null <float> Enum: 0 1 2 Subscribe to every issue created on a pin group in this grid (0), when the issue gets serious (1) or when the issue gets critical (2). If you do not want to receive any notifications, set to null |
{- "level": 0
}Sets issue triggers (thresholds) on a specific quantitity on a specific port (pin). If a measurement outside these limits is registered, an issue is automatically created (if there isn't a relevant one open yet)
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| pinHashId required | string |
| quantityHashId required | string |
required | object or null |
[ ]{- "hashId": "tap192"
}Add a comment to a specific issue
Rights
| hashId required | string Example: a9hhi0 Identifies the issue to comment on |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| comment required | string <= 65536 characters |
| closeIssue | boolean Default: false |
{- "comment": "This looks serious.",
- "closeIssue": false
}{- "newComments": [
- {
- "comment": {
- "hashId": "a9hhi0",
- "userHashId": "b45zo0",
- "comment": "This looks serious.",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "userName": "John Doe"
}
], - "mentionedUsers": [
- {
- "hashId": "ba5qq1",
- "name": "Jane Doe"
}
]
}Create an issue
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
required | Array of objects [ 1 .. 20 ] items [ items ] |
| assignedUserHashId | string or null |
| title required | string <= 100 characters |
| level required | number <float> Enum: 0 1 2 |
| typeKey required | string Enum: "missing" "incorrect" "unexpected" "unrelated" |
| comment required | string <= 65536 characters |
| quantityHashIds required | Array of strings <= 10 items |
| labelHashIds | Array of strings <= 10 items Default: [] |
| startAt required | string <date-time> |
| endAt | string or null <date-time> |
{- "links": [
- {
- "pinGroupHashId": "dao97",
- "pinHashId": null
}
], - "assignedUserHashId": "string",
- "title": "Temperature is too high",
- "level": 0,
- "typeKey": "missing",
- "comment": "This looks serious.",
- "quantityHashIds": [
- "sajia1"
], - "labelHashIds": [
- "u98a24"
], - "startAt": "2019-12-31T15:23Z",
- "endAt": "2019-08-24T14:15:22Z"
}{- "hashId": "c19aid",
- "mentionedUsers": [
- {
- "hashId": "ba5qq1",
- "name": "Jane Doe"
}
]
}Search through issues
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/issue/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "issue": {
- "hashId": "c19aid",
- "userHashId": "b45zo0",
- "assignedUserHashId": null,
- "title": "Temperature is too high",
- "level": 0,
- "typeKey": "missing",
- "startAt": "2019-12-31T15:23Z",
- "endAt": null,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "userName": "John Doe",
- "assignedUserName": null,
- "subscribed": false,
- "links": [
- {
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
}
]
}
]
}Delete an issue.
Rights
| hashId required | string Example: c19aid |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/issue/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific issue identified by its hashId
Rights
| hashId required | string Example: c19aid |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/issue/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "issue": {
- "hashId": "c19aid",
- "userHashId": "b45zo0",
- "assignedUserHashId": null,
- "title": "Temperature is too high",
- "level": 0,
- "typeKey": "missing",
- "startAt": "2019-12-31T15:23Z",
- "endAt": null,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "userName": "John Doe",
- "assignedUserName": null,
- "quantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
], - "mentionedUsers": [
- {
- "hashId": "ba5qq1",
- "name": "Jane Doe"
}
], - "labels": [
- {
- "hashId": "u98a24",
- "name": "Fix this month",
- "color": "#ff0000",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}
], - "comments": [
- {
- "comment": {
- "hashId": "a9hhi0",
- "userHashId": "b45zo0",
- "comment": "This looks serious.",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "userName": "John Doe"
}
], - "subscribed": false,
- "links": [
- {
- "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}
}
]
}Change the settings of a specific issue
Rights
| hashId required | string Example: c19aid |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
Array of objects [ 1 .. 20 ] items [ items ] | |
| title | string <= 100 characters |
| pinGroupHashId | string |
| assignedUserHashId | string or null |
| pinHashId | string or null |
| quantityHashIds | Array of strings <= 10 items |
| labelHashIds | Array of strings <= 10 items |
| level | number <float> Enum: 0 1 2 |
| typeKey | string Enum: "missing" "incorrect" "unexpected" "unrelated" |
| startAt | string <date-time> |
| endAt | string or null <date-time> |
{- "links": [
- {
- "pinGroupHashId": "dao97",
- "pinHashId": null
}
], - "title": "Temperature is too high",
- "pinGroupHashId": "string",
- "assignedUserHashId": "string",
- "pinHashId": "string",
- "quantityHashIds": [
- "string"
], - "labelHashIds": [
- "string"
], - "level": 0,
- "typeKey": "missing",
- "startAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z"
}{- "newComment": {
- "hashId": "a9hhi0",
- "userHashId": "b45zo0",
- "comment": "This looks serious.",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "newCommentUserName": "John Doe",
- "newCommentMentionedUsers": [
- {
- "hashId": "ba5qq1",
- "name": "Jane Doe"
}
]
}Subscribe to or unsubscribe from a specific issue
Rights
| hashId required | string Example: c19aid |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| subscribed required | boolean |
{- "subscribed": true
}Delete a comment on an issue (if it is yours).
Rights
| hashId required | string Example: a9hhi0 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/issue-comment/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Update a comment on an issue (if it is yours)
Rights
| hashId required | string Example: a9hhi0 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| comment required | string <= 65536 characters |
{- "comment": "This looks serious."
}[- {
- "comment": {
- "hashId": "a9hhi0",
- "userHashId": "b45zo0",
- "comment": "This looks serious.",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "userName": "John Doe",
- "mentionedUsers": [
- {
- "hashId": "ba5qq1",
- "name": "Jane Doe"
}
]
}
]Gets a specific issue trigger rule by its priorityLevel and/or deviceTypeHashId.
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/issue-trigger-rule/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "issueTriggerRule": {
- "deviceTypeHashId": "xd2rd4",
- "priorityLevel": "1",
- "missedReports": "12",
- "offlineForSeconds": "1800"
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}
}Creates or updates an issue trigger rule override.
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
object or null |
{- "issueTriggerRule": {
- "missedReports": "12",
- "offlineForSeconds": "1800",
- "priorityLevel": null,
- "deviceTypeHashId": null
}
}Returns all found issue trigger rules for an environment.
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/issue-trigger-rule/find \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "issueTriggerRule": {
- "deviceTypeHashId": "xd2rd4",
- "priorityLevel": "1",
- "missedReports": "12",
- "offlineForSeconds": "1800"
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": null,
- "color": null
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}
}
]
}Create a label
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
| color required | string^#[a-fA-F\d]{6}$ #, followed by six hexadecimal characters |
{- "name": "Fix this month",
- "color": "#ff0000"
}{- "hashId": "u98a24"
}Search through labels
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/label/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "label": {
- "hashId": "u98a24",
- "name": "Fix this month",
- "color": "#ff0000",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}
}
]
}Delete a label.
Rights
| hashId required | string Example: u98a24 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/label/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Rights
| hashId required | string Example: u98a24 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
| color | string^#[a-fA-F\d]{6}$ #, followed by six hexadecimal characters |
{- "name": "string",
- "color": "string"
}Search through measurements
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/measurement/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "report": {
- "hashId": "qoa978",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "generatedAt": "2019-12-31T15:23Z",
- "reportTypeHashId": "l19a7s",
- "pinGroupFields": { },
- "pinObservations": [
- {
- "measurement": {
- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}, - "quantityHashId": "sajia1"
}
]
}, - "pinGroup": {
- "hashId": "dao97",
- "name": "My location"
}, - "pin": {
- "hashId": "e13d57",
- "name": "My port",
- "fields": {
- "id": "My port"
}
}, - "edge": {
- "hashId": "ka08d",
- "name": "My line",
- "fields": {
- "id": "My line"
}
}
}
]
}Set/update anomalousUser in the dataset.
Rights
| hashId required | string Example: qoa978 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| anomalousUser | boolean |
{- "anomalousUser": true
}Add a measurement filter
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
| description required | string |
required | string or object |
| includePinsWithoutReports | boolean Default: true |
| reportTypeHashIds required | Array of strings <= 20 items |
| gridHashId | string |
| pinGroupHashIds | Array of strings [ 1 .. 50 ] items |
| quantityHashIds required | Array of strings [ 1 .. 64 ] items |
| fieldKeys required | Array of strings <= 20 items |
| pinFieldKeys | Array of strings |
| edgeFieldKeys | Array of strings |
{- "name": "North",
- "description": "Temperatures in the North",
- "period": "lastMonth",
- "includePinsWithoutReports": true,
- "reportTypeHashIds": [
- "naud51"
], - "gridHashId": "string",
- "pinGroupHashIds": [
- "dao97"
], - "quantityHashIds": [
- "sajia1"
], - "fieldKeys": [
- "id"
], - "pinFieldKeys": [
- "string"
], - "edgeFieldKeys": [
- "string"
]
}{- "hashId": "k8gh3"
}Search through measurement filters
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/measurement-filter/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "measurementFilter": {
- "hashId": "k8gh3",
- "name": "North",
- "description": "Temperatures in the North",
- "period": "lastMonth",
- "includePinsWithoutReports": true,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}
}
]
}Delete a measurement filter.
Rights
| hashId required | string Example: k8gh3 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/measurement-filter/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific measurement filter identified by its hashId
Rights
| hashId required | string Example: k8gh3 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/measurement-filter/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "measurementFilter": {
- "hashId": "k8gh3",
- "name": "North",
- "description": "Temperatures in the North",
- "period": "lastMonth",
- "includePinsWithoutReports": true,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}, - "reportTypes": [
- {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}
], - "grid": {
- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}, - "pinGroups": [
- {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}
], - "quantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
], - "fieldKeys": [
- "id"
], - "pinFieldKeys": [
- "id"
], - "edgeFieldKeys": [
- "id"
]
}Rights
| hashId required | string Example: k8gh3 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
| description | string |
string or object | |
| includePinsWithoutReports | boolean |
| reportTypeHashIds | Array of strings <= 20 items |
| gridHashId | string |
| pinGroupHashIds | Array of strings [ 1 .. 50 ] items |
| quantityHashIds | Array of strings [ 1 .. 64 ] items |
| fieldKeys | Array of strings <= 20 items |
| pinFieldKeys | Array of strings |
| edgeFieldKeys | Array of strings |
{- "name": "South",
- "description": "string",
- "period": "lastMonth",
- "includePinsWithoutReports": true,
- "reportTypeHashIds": [
- "string"
], - "gridHashId": "string",
- "pinGroupHashIds": [
- "dao97"
], - "quantityHashIds": [
- "string"
], - "fieldKeys": [
- "string"
], - "pinFieldKeys": [
- "string"
], - "edgeFieldKeys": [
- "string"
]
}Add a quantity
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: ENVIRONMENT_ADMIN
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
| color | string Default: "#ff00ff" |
| unit required | string Will be displayed with an SI-prefix (eg. k or M) if relevant |
| defaultOrderOfMagnitude | integer [ -128 .. 127 ] Defines default order of magnitude to be selected at manual report form |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
| disableSiPrefixes | boolean Default: false Will disable SI-prefixes for this quantity if true |
| deviceQuantityHashIds | Array of strings Device quantities, linked to this quantity |
{- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true,
- "deviceQuantityHashIds": [
- "x18a92"
]
}{- "hashId": "sajia1"
}Delete a quantity.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: ENVIRONMENT_ADMIN
| hashId required | string Example: sajia1 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/quantity/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific quantity identified by its hashId
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
| hashId required | string Example: sajia1 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/quantity/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "reportTypes": [
- {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}
], - "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "linkedSupplierQuantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
]
}Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: ENVIRONMENT_ADMIN
| hashId required | string Example: sajia1 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
| color | string |
| unit | string Will be displayed with an SI-prefix (eg. k or M) if relevant |
| defaultOrderOfMagnitude | integer [ -128 .. 127 ] Defines default order of magnitude to be selected at manual report form |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
| disableSiPrefixes | boolean Will disable SI-prefixes for this quantity |
| deviceQuantityHashIds | Array of strings Device quantities, linked to this quantity |
{- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true,
- "deviceQuantityHashIds": [
- "x18a92"
]
}Search through quantities
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/quantity/quantities \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "environmentQuantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
}
]
}Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| generatedAt | string <date-time> The timestamp of the report itself. If not provided, the timestamp of the most recent measurement is taken. If no measurements are present, the existing generatedAt of the report is used. |
required | Array of objects[ items ] |
| reportTypeHashId required | string |
| pinGroupHashId required | string |
| fields | object How form fields should be sent to the server when creating them. |
{- "generatedAt": "2019-12-31T15:23Z",
- "measurements": [
- {
- "pinHashId": "e13d57",
- "quantityHashId": "sajia1",
- "generatedAt": "2019-12-31T15:23Z",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "doNotCompareToThresholds": true
}
], - "reportTypeHashId": "l19a7s",
- "pinGroupHashId": "dao97",
- "fields": { }
}{- "hashId": "qoa978",
- "fields": {
- "id": "My report"
}
}Search through reports
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/report/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "report": {
- "hashId": "qoa978",
- "deviceHashId": "j1iha9",
- "reportTypeHashId": "l19a7s",
- "reportTypeType": "human",
- "generatedAt": "2019-12-31T15:23Z"
}, - "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "reportTypeName": "Temperature and inclination"
}
]
}Delete a report.
Rights
| hashId required | string Example: qoa978 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/report/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific report identified by its hashId
Rights
| hashId required | string Example: qoa978 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/report/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "hashId": "qoa978",
- "observations": [
- {
- "measurement": {
- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}, - "quantityHashId": "sajia1"
}
], - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "deviceHashId": "j1iha9",
- "fields": {
- "id": "My report"
}, - "type": {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}, - "quantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
], - "pinGroupHashId": "dao97",
- "userName": null,
- "generatedAt": "2019-12-31T15:23Z",
- "createdAt": "2019-12-31T15:23Z"
}Rights
| hashId required | string Example: qoa978 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| generatedAt | string <date-time> The timestamp of the report itself. If not provided, the timestamp of the most recent measurement is taken. If no measurements are present, the existing generatedAt of the report is used. |
required | Array of objects or objects[ items ] |
object or (Array of objects or objects) (fieldsToServerUpdate) How form fields should be sent to the server when updating them. |
{- "generatedAt": "2019-12-31T15:23Z",
- "measurements": [
- {
- "measurementHashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "orderOfMagnitude": -3,
- "significand": -1400,
- "doNotCompareToThresholds": true
}
], - "fields": { }
}{- "fields": {
- "id": "My report"
}
}Add a report type for human reports.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
required | object See the chapter on open fields on how to use this |
required | Array of objects or objects[ items ] |
{- "name": "Temperature",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "quantities": [
- {
- "name": "Temperature",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true,
- "color": "#ff00ff"
}
]
}{- "hashId": "l19a7s"
}Search through report types
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/report-type/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "reportType": {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}
}
]
}Delete a report type.
Rights
| hashId required | string Example: l19a7s |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/report-type/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific report type identified by its hashId. For report types of type 'human', quantities that used to be in the report type but are now deleted from it are not included. Report types of type 'device' do not contain any quantities.
Rights
| hashId required | string Example: l19a7s |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/report-type/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "reportType": {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}, - "quantities": [
- {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}
]
}Update a report type for human reports.
Rights
| hashId required | string Example: l19a7s |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
object See the chapter on open fields on how to use this | |
Array of objects or objects[ items ] |
{- "name": "Temperature",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "pin": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "measurement": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
]
}, - "quantities": [
- {
- "name": "Temperature",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true,
- "color": "#ff00ff"
}
]
}Request the creation of a zip file containing a data export
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
required | object or object or object |
| delimiter required | string Enum: "," ";" |
| rowDelimiter required | string Enum: "\n" "\r\n" |
{- "content": {
- "type": "measurementFilter",
- "measurementFilterHashId": "k8gh3"
}, - "delimiter": ",",
- "rowDelimiter": "\n"
}{- "hashId": "maay1"
}Search through export requests
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/settings/export \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "exportRequest": {
- "hashId": "maay1",
- "content": {
- "type": "all",
- "staticOnly": false,
- "gridHashId": null,
- "from": "2019-12-01T00:00Z",
- "to": "2020-01-01T00:00Z"
}, - "delimiter": ",",
- "rowDelimiter": "\n",
- "status": "available",
- "createdAt": "2019-12-31T15:23Z"
}
}
]
}Search the audit log
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: AUDIT_TRAIL
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/settings/log \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "log": {
- "hashId": "op09a",
- "userHashId": "b45zo0",
- "objectType": "command",
- "objectHashId": "ga9741s",
- "subObjectType": null,
- "subObjectHashId": null,
- "action": "delete",
- "diff": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "userName": "John Doe"
}
]
}Get information about the logged in user
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/settings/ \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "environment": {
- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}, - "environmentRights": [
- "STATIC",
- "USERS"
], - "userEnvironmentSettings": {
- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}, - "user": {
- "hashId": "b45zo0",
- "email": "info@acme.com",
- "name": "John Doe",
- "timezone": "Europe/Amsterdam",
- "locale": "en",
- "phone": "string",
- "company": "string",
- "rights": [
- "STATIC",
- "USERS"
]
}
}Update the settings of this user
| Api-Version required | integer Example: 5 |
| name | string <= 255 characters |
| password | string >= 8 characters |
| locale | string Enum: "en" "nl" Locale code |
| timezone | string |
| phone | string or null |
| company | string or null |
{- "name": "Jane Doe",
- "password": "stringst",
- "locale": "en",
- "timezone": "string",
- "phone": "string",
- "company": "string"
}Update the environment settings of this user
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| notificationLevel | number or null <float> Enum: 0 1 2 The user is subscribed to every issue created on locations in this environment (0), when the issue gets serious (1) or when the issue gets critical (2). If null, the user is not autmatically subscribed to new issues. |
| defaultAnalyticsPanelHashId | string or null |
{- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}Subscribe to alerts on objects (currently all of supplier type)
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| objectType required | string Enum: "supplierReportType" "deviceType" "supplierWebhook" "supplierCertificate" |
| objectHashId required | string |
{- "objectType": "deviceType",
- "objectHashId": "wasd2"
}{- "hashId": "dfa1p"
}Search through connectivity environments. Not useful for machine accounts, as they only have access to a single connectivity environment
object |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/subscription/ \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "objectName": "My device",
- "subscription": {
- "hashId": "dfa1p",
- "objectType": "deviceType",
- "objectHashId": "wasd2",
- "lastNotification": "2020-01-31T11:17Z",
- "alertsSinceLastNotification": 0,
- "createdAt": "2019-12-31T15:23Z"
}, - "supplier": {
- "hashId": "f1a4w1",
- "name": "My connectivity environment",
- "createdAt": "2019-12-31T15:23Z"
}
}
]
}Delete a subscription.
| hashId required | string Example: l19a7s |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/subscription/{hashId} \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get suggestions for field of type, filtered by search
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: READ
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/suggestions/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "results": [
- "Installed v1.1.0-rc4",
- "Installed v1.1.0-rc5",
- "Installed v1.1.0-rc6"
]
}Create a connectivity environment to connect external systems and individual IoT devices to our application, which can be used in one or more monitoring environments
| Api-Version required | integer Example: 5 |
| name required | string |
{- "name": "My connectivity environment"
}{- "supplier": {
- "hashId": "f1a4w1",
- "name": "My connectivity environment",
- "createdAt": "2019-12-31T15:23Z"
}, - "supplierRights": [
- "STATIC",
- "USERS"
]
}Delete a connectivity environment. No user can access it afterwards.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/supplier/ \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Search through connectivity environments. Not useful for machine accounts, as they only have access to a single connectivity environment
object |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier/ \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "supplier": {
- "hashId": "f1a4w1",
- "name": "My connectivity environment",
- "createdAt": "2019-12-31T15:23Z"
}, - "supplierRights": [
- "STATIC",
- "USERS"
]
}
]
}Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
{- "name": "My connectivity environment"
}Get a specific connectivity environment identified by its hashId
| hashId required | string Example: f1a4w1 |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier/{hashId} \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "supplier": {
- "hashId": "f1a4w1",
- "name": "My connectivity environment",
- "createdAt": "2019-12-31T15:23Z"
}, - "supplierRights": [
- "STATIC",
- "USERS"
]
}Search through activity in the connectivity environment
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-activity/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "activity": {
- "hashId": "2ad91p",
- "createdAt": "2019-12-31T15:23Z",
- "triggerType": "handleIncomingRequest",
- "failed": false
}, - "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": null,
- "color": null
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}
}
]
}Get a specific activity in the connectivity environment
Rights
| hashId required | string Example: 2ad91p |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-activity/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "device": {
- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}, - "deviceType": {
- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}, - "activity": {
- "hashId": "2ad91p",
- "rootActivityHashId": "2ad91p",
- "createdAt": "2019-12-31T15:23Z",
- "triggerType": "dropCommand",
- "failed": false,
- "log": [
- {
- "type": "log",
- "message": "Debug information: [..]",
- "lineNumber": 0,
- "columnNumber": 0
}
], - "triggerData": {
- "command": {
- "hashId": "ga9741s",
- "deviceHashId": "j1iha9",
- "commandTypeHashId": "x18a92",
- "fields": { },
- "pinGroupHashId": "dao97",
- "userHashId": "b45zo0",
- "startAt": "2019-12-31T15:23Z",
- "delay": 0,
- "endAt": null,
- "channelIndices": [
- 0,
- 2
], - "email": [
- "info@acme.com"
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "sentAt": "2019-12-31T15:23Z"
}, - "commandType": null,
- "removeFromScheduledCommands": true,
- "markAsDeleted": false
}
}
}Add a certificate to the connectivity environment that can be used to create device client certificates.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| csr required | string A Base64 encoded PKCS#10 certificate signing request |
| identifier required | string <= 1000000 characters A javascript function that returns deviceType and identifier. See the chapter "User defined code" |
{- "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIHhMIGHAgEAMCUxEjAQBgNVBAoMCWRldmVsb3BlcjEPMA0GA1UEAwwGeGQycmQ0\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyHDE7farWQdLw/HDgOcbt9BU8ba6\nfEvEY79Z47ozYQ6LAt6wYEW/4Aq4Eir1kSCw/DtououtnpaQokZQkGYf2aAAMAoG\nCCqGSM49BAMCA0kAMEYCIQCHf/bilJwxF+7V/0mifsXK4U0PUHDe0YNBorb2dBzc\nKAIhAK59odu1i8oxIJg237EOLKbf0k/Rhub/CKPrsQ50t0lK\n-----END CERTIFICATE REQUEST-----",
- "identifier": "function (command) {\n return JSON.stringify({\n hashId: command.hashId,\n commandTypeHashId: command.commandTypeHashId,\n startAt: command.startAt,\n endAt: command.endAt,\n settings: command.settings,\n });\n}"
}{- "hashId": "v19a12",
- "certificate": "-----BEGIN CERTIFICATE-----\nMIIBNzCB3gIBATAKBggqhkjOPQQDAjAkMREwDwYDVQQKDAhzdXBwbGllcjEPMA0G\nA1UEAwwGeGQycmQ0MB4XDTIwMDIyNDEzNTQwOVoXDTIxMDIyMzEzNTQwOVowLDEP\nMA0GA1UECgwGZGV2aWNlMRkwFwYDVQQDDBB1bnFpZSBpZGVudGlmaWVyMFkwEwYH\nKoZIzj0CAQYIKoZIzj0DAQcDQgAEUPyQwLuDlKw7CA41ADhxXRvD3n9ZFF0XCeI9\nOAgRIgl2mGmnO31wX1DD4weZoB2pswCBrC39FpyHgIz6LK10PzAKBggqhkjOPQQD\nAgNIADBFAiEAyz0Ha4eFfebqSoES4vxguipSHmR/zN8KjEEie7xpqo8CICFS5NWG\niaT6xhGfChGbQjpmQQYYabau8Ons8F2JNyLu\n-----END CERTIFICATE-----\n",
- "subscriptionHashId": "string"
}Search through certificates
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-certificate/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "certificate": {
- "hashId": "v19a12",
- "name": "My certificate",
- "createdAt": "2019-12-31T15:23Z"
}
}
]
}Delete a certificate from a connectivity environment. When the certificate has been removed, access to the application by devices with a device certificate signed by this intermediate certificate is rejected.
Rights
| hashId required | string Example: v19a12 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/supplier-certificate/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific certificate identified by its hashId
| hashId required | string Example: f1a4w1 |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-certificate/{hashId} \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "certificate": {
- "hashId": "v19a12",
- "name": "My certificate",
- "certificate": "-----BEGIN CERTIFICATE-----\n MIIBNzCB3gIBATAKBggqhkjOPQQDAjAkMREwDwYDVQQKDAhzdXBwbGllcjEPMA0G\n A1UEAwwGeGQycmQ0MB4XDTIwMDIyNDEzNTQwOVoXDTIxMDIyMzEzNTQwOVowLDEP\n MA0GA1UECgwGZGV2aWNlMRkwFwYDVQQDDBB1bnFpZSBpZGVudGlmaWVyMFkwEwYH\n KoZIzj0CAQYIKoZIzj0DAQcDQgAEUPyQwLuDlKw7CA41ADhxXRvD3n9ZFF0XCeI9\n OAgRIgl2mGmnO31wX1DD4weZoB2pswCBrC39FpyHgIz6LK10PzAKBggqhkjOPQQD\n AgNIADBFAiEAyz0Ha4eFfebqSoES4vxguipSHmR/zN8KjEEie7xpqo8CICFS5NWG\n iaT6xhGfChGbQjpmQQYYabau8Ons8F2JNyLu\n -----END CERTIFICATE-----\n ",
- "createdAt": "2019-12-31T15:23Z"
}, - "identifier": "function (command) {\n return JSON.stringify({\n hashId: command.hashId,\n commandTypeHashId: command.commandTypeHashId,\n startAt: command.startAt,\n endAt: command.endAt,\n settings: command.settings,\n });\n}",
- "subscriptionHashId": "string"
}Update the properties of a certificate.
Rights
| hashId required | string Example: v19a12 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| identifier | string <= 1000000 characters A javascript function that returns deviceType and identifier. See the chapter "User defined code" |
{- "identifier": "string"
}Create a report type that devices can send in
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
required | object See the chapter on open fields on how to use this |
| parser required | string <= 1000000 characters A javascript function that parses an incoming report. See the chapter "User defined code" |
{- "name": "Temperature",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "parser": "[omitted]"
}{- "hashId": "y124as",
- "subscriptionHashId": "string"
}Search through device report types
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-report-type/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "reportType": {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "deletedAt": null
}
}
]
}Delete a device report type.
Rights
| hashId required | string Example: y124as |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/supplier-report-type/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific device report type identified by its hashId
Rights
| hashId required | string Example: y124as |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-report-type/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "reportType": {
- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "deletedAt": null
}, - "parser": "[omitted]",
- "subscriptionHashId": "string"
}Update a device report type.
Rights
| hashId required | string Example: y124as |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
object See the chapter on open fields on how to use this | |
| parser | string <= 1000000 characters A javascript function that parses an incoming report. See the chapter "User defined code" |
| retryFailedSince | string <date-time> If supplied, all incoming reports of this type that failed to decode since the provided date will be reparsed. |
{- "name": "Temperature",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "pin": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
], - "measurement": [
- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
]
}, - "parser": "[omitted]",
- "retryFailedSince": "2019-08-24T14:15:22Z"
}Add a webhook to the connectivity environment.
Rights
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string |
| identifier required | string <= 1000000 characters A javascript function that returns deviceType and identifier. See the chapter "User defined code" |
{- "name": "My webhook",
- "identifier": "function (command) {\n return JSON.stringify({\n hashId: command.hashId,\n commandTypeHashId: command.commandTypeHashId,\n startAt: command.startAt,\n endAt: command.endAt,\n settings: command.settings,\n });\n}"
}{- "hashId": "z812a63",
- "subscriptionHashId": "string"
}Search through webhooks
Rights
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-webhook/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "webhook": {
- "hashId": "z812a63",
- "name": "My webhook",
- "createdAt": "2019-12-31T15:23Z"
},
}
]
}Delete a webhook from a connectivity environment.
Rights
| hashId required | string Example: z812a63 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/supplier-webhook/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific webhook identified by its hashId
| hashId required | string Example: f1a4w1 |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/supplier-webhook/{hashId} \ -H 'Accept: text/json' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "webhook": {
- "hashId": "z812a63",
- "name": "My webhook",
- "createdAt": "2019-12-31T15:23Z"
}, - "identifier": "function (command) {\n return JSON.stringify({\n hashId: command.hashId,\n commandTypeHashId: command.commandTypeHashId,\n startAt: command.startAt,\n endAt: command.endAt,\n settings: command.settings,\n });\n}",
- "subscriptionHashId": "string"
}Update the properties of a webhook.
Rights
| hashId required | string Example: v19a12 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name | string |
| identifier | string <= 1000000 characters A javascript function that returns deviceType and identifier. See the chapter "User defined code" |
{- "name": "My webhook",
- "identifier": "string"
}Add a user to a monitoring environment or a connectivity environment.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: USERS
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| name required | string <= 255 characters |
| email required | string <email> |
| rights required | Array of strings See the getting started section about rights |
{- "name": "John Doe",
- "email": "info@acme.com",
- "rights": [
- "STATIC",
- "USERS"
]
}{- "hashId": "b45zo0"
}Search through users wihtin a monitoring environment or a connectivity environment
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: USERS
object |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/user/ \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "nextPageOffset": null,
- "rows": [
- {
- "user": {
- "hashId": "b45zo0",
- "email": "info@acme.com",
- "name": "John Doe",
- "timezone": "Europe/Amsterdam",
- "locale": "en",
- "phone": "string",
- "company": "string",
- "rights": [
- "STATIC",
- "USERS"
]
}, - "rights": [
- "STATIC",
- "USERS"
]
}
]
}Delete a user from a monitoring environment or a connectivity environment.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: USERS
| hashId required | string Example: b45zo0 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X DELETE https://api.withthegrid.com/user/{hashId} \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
Get a specific user identified by its hashId
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: USERS
| hashId required | string Example: b45zo0 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
# You can also use wget curl -X GET https://api.withthegrid.com/user/{hashId} \ -H 'Accept: text/json' \ -H 'Environment-Hash-Id: yourAssetEnvironmentHashId' \ -H 'Api-Version: 5' \ -H 'Authorization: Bearer {access-token}'
{- "user": {
- "hashId": "b45zo0",
- "email": "info@acme.com",
- "name": "John Doe",
- "timezone": "Europe/Amsterdam",
- "locale": "en",
- "phone": "string",
- "company": "string",
- "rights": [
- "STATIC",
- "USERS"
]
}, - "rights": [
- "STATIC",
- "USERS"
]
}Update the rights of a user for this monitoring environment or connectivity environment.
Rights
Connectivity environment: ENVIRONMENT_ADMIN
Monitoring environment: USERS
| hashId required | string Example: b45zo0 |
| Environment-Hash-Id required | string Example: yourAssetEnvironmentHashId |
| Api-Version required | integer Example: 5 |
| rights required | Array of strings See the getting started section about rights |
{- "rights": [
- "STATIC",
- "USERS"
]
}| hashId required | string |
| title required | string <= 100 characters |
Array of objects[ items ] Default: [] | |
required | Array of objects[ items ] |
{- "hashId": "j1iha9",
- "title": "My dashboard",
- "layout": [ ],
- "cards": [
- {
- "title": "My widget",
- "subtitle": "My widget description",
- "query": {
- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": "or",
- "restrictions": "{}"
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}, - "visualisation": {
- "type": "line",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}
}
]
}| source required | string |
required | Array of objects or objects or objects or objects[ items ] |
object | |
object | |
| offset | string |
Array of objects[ items ] | |
| rowsPerPage | number <float> [ 10 .. 100 ] Default: 20 |
{- "source": "pinGroup",
- "columns": [
- {
- "field": "pinGroup.hashId",
- "name": "string"
}
], - "filter": {
- "type": "or",
- "restrictions": [
- {
- "type": "or",
- "restrictions": "{}"
}
]
}, - "limitBy": {
- "limitedTo": 0,
- "per": [ ],
- "sortedBy": [ ]
}, - "offset": "string",
- "sort": [ ],
- "rowsPerPage": 20
}| type required | string Enum: "line" "scatter" "stacked-bar" "clustered-bar" |
| colors required | Array of strings |
| xAxisColumnIndex required | integer or null |
| forceOrdinal required | boolean |
| showAllXAxisLabels | boolean Default: false |
{- "type": "table",
- "colors": [
- "#202f0c"
], - "xAxisColumnIndex": null,
- "forceOrdinal": false,
- "showAllXAxisLabels": false
}| title required | string or null |
required | Array of objects[ items ] |
{- "title": null,
- "series": [
- {
- "quantity": {
- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}, - "pin": {
- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}, - "pinGroup": {
- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}, - "color": "#ff0000",
- "pinThreshold": {
- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}
}
]
}| hashId required | string |
| deviceHashId required | string |
| commandTypeHashId required | string |
| fields required | object How form fields are returned by the server. |
| pinGroupHashId required | string or null |
| userHashId required | string or null |
| startAt required | string or null <date-time> Timestamp the device should execute the command. The system tries to share the command with the device before that time. If null, the device should execute it at time of receival + command.delay |
| delay required | number <float> In seconds. Only relevant when startAt is null. The command should then be executed by the device at time of receival + delay |
| endAt required | string or null <date-time> Timestamp the device should stop execution of the command. |
| channelIndices required | Array of numbers <float> [ items <float > ] The device channels for which this command is relevant. See commandType.channelSelect for allowed values. |
Array of strings or null <email> | |
| createdAt | string <date-time> |
| deletedAt | string or null <date-time> |
| sentAt required | string or null <date-time> |
{- "hashId": "ga9741s",
- "deviceHashId": "j1iha9",
- "commandTypeHashId": "x18a92",
- "fields": { },
- "pinGroupHashId": "dao97",
- "userHashId": "b45zo0",
- "startAt": "2019-12-31T15:23Z",
- "delay": 0,
- "endAt": null,
- "channelIndices": [
- 0,
- 2
], - "email": [
- "info@acme.com"
], - "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "sentAt": "2019-12-31T15:23Z"
}| hashId required | string |
| name required | string |
| start required | string Enum: "required" "optional" "disabled" 'required': user must provide command.startAt. 'optional': user can provide command.startAt or a delay for the command to start after it is sent to the device. 'disabled': user cannot provide command.startAt nor a delay. |
| end required | string Enum: "required" "optional" "disabled" 'required': user must provide command.endAt. 'optional': user can provide command.endAt. 'disabled': user cannot provide command.endAt. |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] See the chapter on open fields on how to use this |
| channelSelect required | string Enum: "single" "multiple" "off" When creating a command of this type, the user can then optionally choose one (in case of 'single') or more channelIndices (in case of 'multiple') for which this command is relevant. If 'off' is chosen, the user cannot specify channelIndices |
| environmentAccess required | string Enum: "full" "read" "none" 'full': end-users can view, create and delete commands of this type. 'read': end-users can view but not create and delete commands of this type. 'none': end-users cannot view, create or delete commands of this type. |
{- "hashId": "x18a92",
- "name": "Measurement cycle",
- "start": "required",
- "end": "disabled",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channelSelect": "off",
- "environmentAccess": "none"
}| hashId required | string |
| supplierHashId required | string |
| supplierDeviceIdentifier required | string Should be unique within the connectivity environment |
| deviceTypeHashId required | string |
| fields required | object How form fields are returned by the server. |
| measurementCycle | any or null |
| nextReportBefore required | string or null <date-time> |
| lastOnlineAt required | string or null <date-time> |
| validated required | boolean |
{- "hashId": "j1iha9",
- "supplierHashId": "f1a4w1",
- "supplierDeviceIdentifier": "390044000351352237353037",
- "deviceTypeHashId": "wasd2",
- "fields": { },
- "measurementCycle": null,
- "nextReportBefore": "2019-12-31T15:25Z",
- "lastOnlineAt": "2019-12-31T15:23Z",
- "validated": true
}| hashId required | string |
| name required | string |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] See the chapter on open fields on how to use this |
required | Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects[ items ] Defines deviceFields on the location (pinGroup) the device is connected to. Can be used in report type functions. See the chapter on open fields on how to use this |
required | Array of objects[ items ] |
required | Array of objects[ items ] |
| commandTypeHashIds required | Array of strings The hashIds of the command types a user can schedule for this device |
{- "hashId": "wasd2",
- "name": "Cathodic protection device",
- "fieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pinGroupFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "channels": [
- {
- "name": "Red wire",
- "pinFieldConfigurations": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "defaultPinName": "Anode",
- "charts": [
- {
- "title": "Red wire charts",
- "series": [
- {
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
]
}
], - "charts": [
- {
- "title": "Cathodic protection charts",
- "series": [
- {
- "channelIndex": 0,
- "quantityHashId": "x18a92",
- "color": "#ff00ff"
}
]
}
], - "commandTypeHashIds": [
- "x18a92"
]
}| hashId required | string |
| node1HashId required | string or null |
| node2HashId required | string or null |
object or object | |
| name required | string |
| fields required | object The field configuration is stored in the fieldConfigurations key of the monitoring environment object |
| level required | integer Enum: 0 1 2 0: no serious or critical open issues, 1: one or more serious open issues an no critical open issues, 2: one or more critical open issues |
| mapLayer required | string |
| mostRecentMeasurementAt required | string or null <date-time> |
| deletedAt required | string or null <date-time> |
{- "hashId": "ka08d",
- "node1HashId": "qp111a",
- "node2HashId": "qp111a",
- "geometry": [
- [
- 4.884707950517225,
- 52.37502141913572
], - [
- 4.882654974236971,
- 52.355321958806485
], - [
- 4.924301064507517,
- 52.364277347881085
]
], - "name": "My line",
- "fields": {
- "id": "My line"
}, - "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}| hashId required | string |
| name required | string |
required | Array of objects (mapLayer) non-empty [ items ] |
required | object or null All pin groups and edges in this monitoring environment are contained in the rectangle described by this linestring. If null, no locations (pinGroups) or lines (edges) are present |
required | object See the chapter on open fields on how to use this |
| locale required | string Enum: "en" "nl" Locale code |
| defaultGraphRange required | string |
| measurementsExpirationDays required | integer [ 1 .. 9999 ] |
| expiresAt required | string or null <date-time> |
| createdAt required | string <date-time> |
{- "hashId": "f1a4w1",
- "name": "My monitoring environment",
- "mapLayers": [
- {
- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}
], - "boundingBox": {
- "type": "LineString",
- "coordinates": [
- [
- 3.3135576,
- 47.9747658
], - [
- 5.1288442202798,
- 51.8145997
]
]
}, - "fieldConfigurations": {
- "pinGroups": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "edges": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "grids": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "nodes": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pins": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "locale": "en",
- "defaultGraphRange": "30d",
- "measurementsExpirationDays": 365,
- "expiresAt": null,
- "createdAt": "2019-12-31T15:23Z"
}| hashId required | string |
| name required | string |
required | object See the chapter on open fields on how to use this |
| type required | string Enum: "human" "device" |
| deletedAt required | string or null <date-time> |
{- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "type": "human",
- "deletedAt": null
}| hashId required | string |
required | object or object or object |
| delimiter required | string Enum: "," ";" |
| rowDelimiter required | string Enum: "\n" "\r\n" |
| status required | string Enum: "waiting" "creating" "available" "deleted" |
| downloadUrl | string Only available at status available |
| createdAt required | string <date-time> |
{- "hashId": "maay1",
- "content": {
- "type": "all",
- "staticOnly": false,
- "gridHashId": null,
- "from": "2019-12-01T00:00Z",
- "to": "2020-01-01T00:00Z"
}, - "delimiter": ",",
- "rowDelimiter": "\n",
- "status": "available",
- "createdAt": "2019-12-31T15:23Z"
}The values that can be stored in a form field
trueHow form fields should be sent to the server when creating them.
{ }| dataUrl required | string Layout should be "data: |
| name | string The filename including extension |
{- "dataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
- "name": "red-dot.png"
}| hashId required | string |
| typeKey required | string Enum: "node" "pinGroup" |
| name required | string |
| fields required | object The field configuration is stored in the fieldConfigurations key of the monitoring environment object |
| deletedAt required | string or null <date-time> |
{- "hashId": "naud51",
- "typeKey": "pinGroup",
- "name": "My grid",
- "fields": {
- "id": "My grid"
}, - "deletedAt": null
}| hashId required | string |
| userHashId required | string or null |
| assignedUserHashId required | string or null |
| title required | string |
| level required | integer Enum: 0 1 2 |
| typeKey required | string Enum: "missing" "incorrect" "unexpected" "unrelated" |
| startAt required | string <date-time> |
| endAt required | string or null <date-time> If null, the issue is still open |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
| deletedAt | string or null <date-time> |
{- "hashId": "c19aid",
- "userHashId": "b45zo0",
- "assignedUserHashId": null,
- "title": "Temperature is too high",
- "level": 0,
- "typeKey": "missing",
- "startAt": "2019-12-31T15:23Z",
- "endAt": null,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}| hashId required | string |
| userHashId required | string or null If null, the comment is created by an automated process |
| comment required | string |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
| deletedAt | string or null <date-time> |
{- "hashId": "a9hhi0",
- "userHashId": "b45zo0",
- "comment": "This looks serious.",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}| hashId required | string |
| name required | string |
| color required | string^#[a-fA-F\d]{6}$ #, followed by six hexadecimal characters |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
| deletedAt | string or null <date-time> |
{- "hashId": "u98a24",
- "name": "Fix this month",
- "color": "#ff0000",
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}| hashId required | string |
| userHashId required | string or null |
| objectType required | string or null |
| objectHashId required | string or null |
| subObjectType required | string or null |
| subObjectHashId required | string or null |
| action required | string <= 32 characters |
required | object or null |
| createdAt required | string <date-time> |
{- "hashId": "op09a",
- "userHashId": "b45zo0",
- "objectType": "command",
- "objectHashId": "ga9741s",
- "subObjectType": null,
- "subObjectHashId": null,
- "action": "delete",
- "diff": null,
- "createdAt": "2019-12-31T15:23Z"
}| name required | string |
| key required | string |
| style | any If provided, the layer renders from an external source. See https://docs.mapbox.com/mapbox-gl-js/style-spec/ for the Mapbox Style Specification. Only the layers and sources keys are currently supported. |
| namedStyle | string If provided, a style predefined by withthegrid is used. Style is ignored if it is also provided. |
{- "name": "My map layer",
- "key": "myLayer",
- "style": {
- "layers": [
- {
- "id": "pdok-layer",
- "type": "raster",
- "source": "pdok-source",
- "paint": { }
}
], - "sources": {
- "pdok-source": {
- "type": "raster",
- "bounds": [
- 3.1706551165717776,
- 50.5788239246427,
- 7.4887369433036834,
- 53.637607600687694
]
}
}
}, - "namedStyle": "pdok-bodemkaart"
}| hashId required | string |
| generatedAt required | string <date-time> |
| channelIndex required | integer or null The channel of the installed device. When null, the measurement is not taken by a device but manually entered |
| channelMeasurementIndex | integer or null Not null for device measurements. Represents the device channel this measurement is taken from, see the channels key in the device type object. |
| reportHashId required | string |
| pinHashId required | string or null |
| orderOfMagnitude required | integer [ -128 .. 127 ] The measured value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
| significand required | integer [ -2147483648 .. 2147483647 ] The measured value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
| performance | integer -1: not compared to thresholds, 0: within thresholds, 1: outside serious thresholds but inside critical thresholds, 2: outside critical thresholds |
| anomalousDetector | boolean or null Anomaly detector classification, false: not an anomaly, true: is an anomaly, null: unknown |
| anomalousUser | boolean or null User classification, false: not an anomaly, true: is an anomaly, null: unknown |
{- "hashId": "po177",
- "generatedAt": "2019-12-31T15:23Z",
- "channelIndex": 0,
- "channelMeasurementIndex": 0,
- "reportHashId": "qoa978",
- "pinHashId": "e13d57",
- "orderOfMagnitude": -3,
- "significand": -1500,
- "performance": 0,
- "anomalousDetector": true,
- "anomalousUser": true
}| hashId required | string |
| name required | string |
| description required | string |
required | string or object |
| includePinsWithoutReports required | boolean |
| createdAt required | string <date-time> |
| updatedAt required | string <date-time> |
| deletedAt | string or null <date-time> |
{- "hashId": "k8gh3",
- "name": "North",
- "description": "Temperatures in the North",
- "period": "lastMonth",
- "includePinsWithoutReports": true,
- "createdAt": "2019-12-31T15:23Z",
- "updatedAt": "2019-12-31T15:23Z",
- "deletedAt": "2019-08-24T14:15:22Z"
}| hashId required | string |
required | object |
| name required | string |
| fields required | object The field configuration is stored in the fieldConfigurations key of the monitoring environment object |
| gridHashId required | string |
| deletedAt required | string or null <date-time> |
{- "hashId": "qp111a",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My node",
- "fields": {
- "id": "My node"
}, - "gridHashId": "naud52",
- "deletedAt": null
}| hashId required | string |
| pinGroupHashId required | string |
| name required | string |
| fields required | object The field configuration is stored in the fieldConfigurations key of the monitoring environment object |
| deviceFields required | object The field configuration is stored in the pinFieldConfigurations key of the channel key in the device type object |
| level required | integer Enum: 0 1 2 0: no serious or critical open issues, 1: one or more serious open issues an no critical open issues, 2: one or more critical open issues |
| edgeHashId | string or null |
| nodeHashId | string or null |
| typeKey | string or null |
| deletedAt required | string or null <date-time> |
{- "hashId": "e13d57",
- "pinGroupHashId": "dao97",
- "name": "My port",
- "fields": {
- "id": "My port"
}, - "deviceFields": { },
- "level": 0,
- "edgeHashId": "string",
- "nodeHashId": "string",
- "typeKey": "string",
- "deletedAt": "2019-12-31T15:23Z"
}| hashId required | string |
required | object or null |
| name required | string |
| symbolKey required | string |
| deviceFields required | object The field configuration is stored in the pinGroupFieldConfigurations key of the device type object |
| fields required | object The field configuration is stored in the fieldConfigurations key of the monitoring environment object |
| deviceLinkHashId required | string or null If null, there is no device installed at this location |
| level required | integer Enum: 0 1 2 0: no serious or critical open issues, 1: one or more serious open issues an no critical open issues, 2: one or more critical open issues |
| mapLayer required | string |
| mostRecentMeasurementAt required | string or null <date-time> |
| deletedAt required | string or null <date-time> |
{- "hashId": "dao97",
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.884707950517225,
- 52.37502141913572
]
}, - "name": "My location",
- "symbolKey": "cp-pole",
- "deviceFields": { },
- "fields": {
- "id": "My location"
}, - "deviceLinkHashId": null,
- "level": 0,
- "mapLayer": "myLayer",
- "mostRecentMeasurementAt": null,
- "deletedAt": null
}| hashId required | string |
| name required | string |
| color required | string |
| unit required | string Will be displayed with an SI-prefix (eg. k or M) if relevant |
| defaultOrderOfMagnitude | integer [ -128 .. 127 ] Defines default order of magnitude to be selected at manual report form |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) | |
| disableSiPrefixes | boolean Default: false Will disable SI-prefixes for this quantity if true |
{- "hashId": "sajia1",
- "name": "Temperature",
- "color": "#ff00ff",
- "unit": "K",
- "defaultOrderOfMagnitude": 3,
- "defaultCriticallyLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultLowThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "defaultCriticallyHighThreshold": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "disableSiPrefixes": true
}| orderOfMagnitude required | integer [ -128 .. 127 ] |
| significand required | integer [ -2147483648 .. 2147483647 ] |
{- "orderOfMagnitude": 0,
- "significand": 1500
}"untranslated string"| hashId required | string |
| name required | string |
| createdAt required | string <date-time> |
{- "hashId": "f1a4w1",
- "name": "My connectivity environment",
- "createdAt": "2019-12-31T15:23Z"
}| hashId required | string |
| name required | string |
| certificate required | string A Base64 encoded intermediate certificate. Should be used to create device certificates. |
| createdAt required | string <date-time> |
{- "hashId": "v19a12",
- "name": "My certificate",
- "certificate": "-----BEGIN CERTIFICATE-----\n MIIBNzCB3gIBATAKBggqhkjOPQQDAjAkMREwDwYDVQQKDAhzdXBwbGllcjEPMA0G\n A1UEAwwGeGQycmQ0MB4XDTIwMDIyNDEzNTQwOVoXDTIxMDIyMzEzNTQwOVowLDEP\n MA0GA1UECgwGZGV2aWNlMRkwFwYDVQQDDBB1bnFpZSBpZGVudGlmaWVyMFkwEwYH\n KoZIzj0CAQYIKoZIzj0DAQcDQgAEUPyQwLuDlKw7CA41ADhxXRvD3n9ZFF0XCeI9\n OAgRIgl2mGmnO31wX1DD4weZoB2pswCBrC39FpyHgIz6LK10PzAKBggqhkjOPQQD\n AgNIADBFAiEAyz0Ha4eFfebqSoES4vxguipSHmR/zN8KjEEie7xpqo8CICFS5NWG\n iaT6xhGfChGbQjpmQQYYabau8Ons8F2JNyLu\n -----END CERTIFICATE-----\n ",
- "createdAt": "2019-12-31T15:23Z"
}| hashId required | string |
| name required | string |
required | object See the chapter on open fields on how to use this |
| deletedAt required | string or null <date-time> |
{- "hashId": "l19a7s",
- "name": "Temperature and inclination",
- "fieldConfigurations": {
- "pinGroup": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "pin": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
], - "measurement": [
- {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
]
}, - "deletedAt": null
}| hashId required | string |
| name required | string |
| createdAt required | string <date-time> |
{- "hashId": "z812a63",
- "name": "My webhook",
- "createdAt": "2019-12-31T15:23Z"
}| hashId required | string |
| pinHashId required | string |
required | object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
required | object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
required | object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
required | object or null (siNumber) Significant number. Its value is significand * 10 ^ orderOfMagnitude. It has as many significant figures as the significand has (except when the significand is 0, then the number of significant figures is not defined) |
{- "hashId": "tap192",
- "pinHashId": "e13d57",
- "criticallyLow": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "low": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "high": {
- "orderOfMagnitude": 0,
- "significand": 1500
}, - "criticallyHigh": {
- "orderOfMagnitude": 0,
- "significand": 1500
}
}| en required | string |
| nl required | string |
{- "en": "English string",
- "nl": "Nederlandse string"
}| existingKey | string^[a-z][a-zA-Z\d]*$ |
required | object or object or object or object or object or object or object or object or object or object or object or object or object Defines which data can be stored in form fields. |
[- {
- "existingKey": "string",
- "fieldConfiguration": {
- "key": "id",
- "name": "untranslated string",
- "showIf": {
- "key": "string",
- "value": "string"
}, - "hint": "untranslated string",
- "allowNull": null,
- "valueOptions": null,
- "type": "string",
- "defaultValue": "string",
- "inputType": "text",
- "regex": "string",
- "prefix": "untranslated string",
- "suffix": "untranslated string"
}
}
]| hashId required | string |
| email required | string or null <email> Is null for machine accounts |
| name required | string <= 255 characters |
| timezone required | string A IANA zone or a fixed-offset name of the form 'UTC+3', or the strings 'utc'. |
| locale | string Default: "en" Enum: "en" "nl" Locale code |
| phone | string or null |
| company | string or null |
| rights required | Array of strings See the getting started section about rights |
{- "hashId": "b45zo0",
- "email": "info@acme.com",
- "name": "John Doe",
- "timezone": "Europe/Amsterdam",
- "locale": "en",
- "phone": "string",
- "company": "string",
- "rights": [
- "STATIC",
- "USERS"
]
}| notificationLevel required | number or null <float> Enum: 0 1 2 The user is subscribed to every issue created on locations in this environment (0), when the issue gets serious (1) or when the issue gets critical (2). If null, the user is not autmatically subscribed to new issues. |
| defaultAnalyticsPanelHashId required | string or null |
{- "notificationLevel": 0,
- "defaultAnalyticsPanelHashId": "7usgt"
}| hashId required | string |
| objectType required | string Enum: "supplierReportType" "deviceType" "supplierWebhook" "supplierCertificate" |
| objectHashId required | string |
| lastNotification required | string or null <date-time> |
| alertsSinceLastNotification required | integer |
| createdAt required | string <date-time> |
{- "hashId": "dfa1p",
- "objectType": "deviceType",
- "objectHashId": "wasd2",
- "lastNotification": "2020-01-31T11:17Z",
- "alertsSinceLastNotification": 0,
- "createdAt": "2019-12-31T15:23Z"
}| hashId required | string |
| incoming required | boolean |
| createdAt required | string <date-time> |
required | object |
required | object or null |
{- "hashId": "1a532q",
- "incoming": true,
- "createdAt": "2019-12-31T15:23Z",
- "request": {
- "url": {
- "protocol": "https",
- "host": "api.withthegrid.com",
- "path": "/something",
- "query": {
- "e": "f1a4w1",
- "t": "asd193gaf11234"
}
}, - "ip": "8.8.8.8",
- "method": "post",
- "headers": {
- "content-type": "application/json;charset=UTF-8"
}, - "body": {
- "type": "json",
- "data": {
- "key": "value"
}
}, - "certificate": {
- "subjects": [
- [
- {
- "key": {
- "encoding": "utf8",
- "value": "cn"
}, - "value": {
- "encoding": "utf8",
- "value": "common name"
}
}
]
]
}
}, - "response": {
- "statusCode": 200,
- "headers": {
- "content-type": "application/json;charset=UTF-8"
}, - "body": {
- "type": "json",
- "data": {
- "key": "value"
}
}
}
}